home *** CD-ROM | disk | FTP | other *** search
/ Generous Efforts of Many / gemcd.zip / GEM.CD.A.po / FEATURES:BEAGLE / ALPHA.PLOT.SHK / ALPHA.PLOT / ALPHA PLOT.bas < prev    next >
BASIC Source File  |  2000-01-01  |  22KB  |  270 lines

  1. 12  ONERR  GOTO 542
  2. 14  IF  PEEK(104) < >96  OR  PEEK(64435) = 6  THEN  HOME : PRINT "<CTRL-D>RUN ALPHA BOOT"
  3. 16  TEXT : HOME : NORMAL : PRINT "<CTRL-D>NOMONICO": HOME : GOTO 262
  4. 18  HOME :J =  FRE(0): POKE 49235,0:KE =  -1: VTAB 21: RETURN 
  5. 20  NORMAL : HCOLOR= C -5 *(C = 8) -6 *(C = 9): IF MX  THEN  HCOLOR= C1
  6. 22  VTAB 23: HTAB 11: PRINT XN",V="YN"   ": HTAB 11: PRINT  ABS(XN -X2)",V=" ABS(YN -Y2)"   ";
  7. 24  IF   NOT CU  THEN 32
  8. 26  IF CU = N1  THEN I = N3 +(XN >277  OR XN <2  OR YN >189  OR YN <2):J = N2 +N2 *(X2 >277  OR X2 <2  OR Y2 >189  OR Y2 <2): XDRAW I AT XN,YN: XDRAW J AT X2,Y2: XDRAW N4 AT XN,Y2: XDRAW N4 AT X2,YN: XDRAW I AT XN,YN: XDRAW J AT X2,Y2: XDRAW N4 AT XN,Y2: XDRAW N4 AT X2,YN: GOTO 32
  9. 28  POKE OL +N3,XN - INT(XN/TF) *TF: POKE OL +N4, INT(XN/TF): POKE OL +N5,YN: POKE OL +N6,X2 - INT(X2/TF) *TF: POKE OL +N7, INT(X2/TF): POKE OL +N8,Y2
  10. 30  CALL OL: FOR I = N1 TO N9: NEXT : CALL OL: IF PD <0  AND  PEEK(Q) <CC  THEN 30
  11. 32  IF PD <1  THEN 42
  12. 34 XN =  INT( PDL(0) *XP):YN =  INT( PDL(1) *YP):YN =  INT( PDL(1) *YP): IF C < >8  AND DR >0  THEN  HPLOT XN,YN TO XO,YO:XO = XN:YO = YN
  13. 36  IF C = 8  AND DR >0  THEN  POKE OL +3,XN - INT(XN/TF) *TF: POKE OL +4, INT(XN/TF): POKE OL +5,YN: POKE OL +6,X2 - INT(X2/TF) *TF: POKE OL +7, INT(X2/TF): POKE OL +8,Y2: CALL OL:X2 = XN:Y2 = YN
  14. 38  IF  PEEK( -16287) >127  THEN A$ = "Z": GOTO 198
  15. 40  IF  PEEK( -16286) >127  THEN K = 173: GOTO 70
  16. 42 K =  PEEK(Q): IF K <CC  THEN 22
  17. 44  POKE CL,0: IF K = 148  OR K = CC  OR K = CM  OR K = 210  OR (K >159  AND K <193)  THEN 64
  18. 46  IF K = SC  THEN SP = 50: GOTO 42
  19. 48 BX = 0:CI = 0:YO = YN:XO = XN: IF K <205  AND K < >193  THEN XN = XO -SP *(K = BS) +SP *(K = 149) -(K = 203) +(K = 204): GOTO 54
  20. 50 YN = YO +SP *(K = 218) -SP *(K = 193) +(K = 216) -(K = 211): IF DR >0  AND XO - INT(XO/2) *2 = 0  THEN XO = XO +(C = 1  OR C = 5):XN = XO: GOTO 54
  21. 52  IF DR >0  AND XO - INT(XO/2) *2 = 1  THEN XO = XO +(C = 2  OR C = 6) -(XO = 279):XN = XO
  22. 54 XN = XN -(XN >XX) *(XN -XX):XN = XN -XN *(XN <0):YN = YN -(YN >YY) *(YN -YY):YN = YN -YN *(YN <0): IF DR <0  THEN XO = XN:YO = YN: GOTO 60
  23. 56  IF C = 8  THEN  SCALE= 1 +(SP -1) *(K >216  OR K <203): ROT= 0 +16 *(K >215) +48 *(K = 193  OR K = 211) +32 *(K = BS  OR K = 203): XDRAW N4 AT XN,YN: SCALE= 1: ROT= 0: GOTO 60
  24. 58  HPLOT XO,YO TO XN,YN: IF (X <279)  AND (C = 7  OR C = 4)  AND (K >210  OR K = 193)  THEN  HPLOT XO +1,YO TO XN +1,YN
  25. 60  IF PD >0  THEN  GOSUB 18: VTAB 22: HTAB 8: INVERSE : PRINT G$" YOU ARE IN PADDLE MODE. ": NORMAL : PRINT : HTAB 10: PRINT " USE 7-KEY TO SWITCH."G$;: GOSUB 296: GOTO 282
  26. 62 SP = ST: GOTO 22
  27. 64  IF K = 148  THEN M$ = "T":TX = 0: GOTO 476
  28. 66  IF K < >186  THEN BX = 0
  29. 68  IF K < >176  THEN CI = 0
  30. 70  IF K < >173  THEN 82
  31. 72  IF C = 8  THEN 78
  32. 74  HPLOT XN,YN TO X2,Y2 TO XN,YN: IF X2 = XN  AND (C = 7  OR C = 4)  AND X2 <279  THEN  HPLOT XN +1,YN TO X2 +1,Y2
  33. 76  GOTO 80
  34. 78  POKE OL +3,XN - INT(XN/TF) *TF: POKE OL +4, INT(XN/TF): POKE OL +5,YN: POKE OL +6,X2 - INT(X2/TF) *TF: POKE OL +7, INT(X2/TF): POKE OL +8,Y2: CALL OL
  35. 80 X2 = XN:Y2 = YN: GOTO 22
  36. 82  IF K < >186  THEN 132
  37. 84  IF YN = Y2  OR XN = X2  THEN 282
  38. 86 BX = BX +1: IF C < >8  AND BX >1  THEN 110
  39. 88  IF C < >8  THEN 100
  40. 90 J =  ABS(XN -X2) +1: IF J >255  THEN J = 255
  41. 92  SCALE= J: ROT= CS *(X2 >XN): XDRAW 4 AT XN,YN: XDRAW 4 AT XN,Y2: SCALE=  ABS(YN -Y2) -1 +2 *(YN = Y2): ROT= 16 +CS *(Y2 >YN): XDRAW 4 AT XN,YN +1 -2 *(YN >Y2): XDRAW 4 AT X2,YN +1 -2 *(YN >Y2): ROT= R: SCALE= 1
  42. 94  IF  ABS(XN -X2) >255  THEN  SCALE=  ABS(XN -X2) -254: ROT= 0 +32 *(XN >X2): XDRAW 4 AT X2,YN: XDRAW 4 AT X2,Y2
  43. 96  SCALE= 1: IF MF  THEN  RETURN 
  44. 98  GOTO 108
  45. 100 I = X2 - INT(X2/2) *2:J = XN - INT(XN/2) *2: IF ((C = 1  OR C = 5)  AND I = 0)  OR ((C = 2  OR C = 6)  AND I = 1)  THEN X2 = X2 +1 -(X2 = 279)
  46. 102  IF ((C = 1  OR C = 5)  AND J = 0)  OR ((C = 2  OR C = 6)  AND J = 1)  THEN XN = XN +1 -(XN = 279)
  47. 104  HPLOT X2,YN TO XN,YN TO XN,Y2 TO X2,Y2 TO X2,YN: IF C = 4  OR C = 7  THEN J = X2 +1 -(X2 = 279): HPLOT J,YN TO J,Y2:J = XN +1 -(XN = 279): HPLOT J,YN TO J,Y2
  48. 106  GOTO 282
  49. 108  IF BX = 1  THEN 282
  50. 110 BX = 0: FOR I = Y2 TO YN  STEP  -(YN <Y2) +(YN >Y2): IF C <8  AND   NOT MX  THEN  HPLOT X2,I TO XN,I: IF  PEEK(Q) < >CM  THEN  NEXT 
  51. 112  IF C <8  AND   NOT MX  THEN  POKE CL,0: GOTO 22
  52. 114  IF C = 8  THEN 122
  53. 116  HCOLOR= C1: IF MX = 1  AND I - INT(I/2) *2 = 0  THEN  HCOLOR= C2
  54. 118  HPLOT X2,I TO XN,I: IF  PEEK(Q) = CM  THEN  POKE CL,0: GOTO 282
  55. 120  NEXT : GOTO 282
  56. 122 J =  ABS(XN -X2): IF J >255  THEN J = 255
  57. 124  SCALE= J: ROT= 0 +32 *(XN >X2): XDRAW 4 AT X2,I
  58. 126  IF  ABS(XN -X2) >255  THEN  SCALE=  ABS(XN -X2) -254: ROT= 0 +32 *(X2 >XN): XDRAW 4 AT XN,I
  59. 128  IF  PEEK(Q) < >CM  THEN  NEXT 
  60. 130  POKE CL,0: SCALE= 1: ROT= 0: GOTO 106
  61. 132  IF K < >177  THEN 150
  62. 134 MX = 0: GOSUB 294: GOSUB 408: IF M$ = "T"  THEN  VTAB 24: HTAB 1: PRINT "(FOR TYPE SIZES 2-4)";: HTAB 31: CALL  -868: VTAB 23: HTAB 31: CALL  -868
  63. 136  VTAB 22: HTAB 5: PRINT "SELECT COLOR: ->";: HTAB 18: GET A$: IF A$ =  CHR$(13)  OR (A$ <"0"  OR A$ > CHR$(57 -2 *(M$ = "T")))  THEN 282
  64. 138 C =  VAL(A$): IF C <9  THEN C1 = C -5 *(C = 8):C2 = C: GOTO 282
  65. 140  GOSUB 408: VTAB 24: HTAB 37: PRINT ":";: CALL  -958: GOSUB 294: VTAB 22: HTAB 1: PRINT "BOX/ELLIPSE ";: INVERSE : PRINT "COLOR MIX": NORMAL : PRINT : PRINT "  SELECT COLORS-> ";: HTAB 38
  66. 142  GET A$: IF A$ =  CHR$(13)  THEN C = 3: GOTO 134
  67. 144 C1 =  VAL(A$): PRINT C1;"+";: GET A$: IF A$ =  CHR$(13)  THEN C = 3: GOTO 134
  68. 146 MX = 1:C2 =  VAL(A$): IF C1 >7  OR C2 >7  OR C1 = C2  THEN  PRINT G$;G$;: GOTO 140
  69. 148 K = 0: HCOLOR= C1:C = C1: GOTO 368
  70. 150  IF K < >185  THEN 160
  71. 152  VTAB 23: HTAB 1: PRINT  SPC( 22): VTAB 24: HTAB 1: PRINT  SPC( 22);: HTAB 1: PRINT "(0=10, :=20, -=40)";: INVERSE : HTAB 2: PRINT 0;: HTAB 8: PRINT ":";: HTAB 14: PRINT "-";: VTAB 21: HTAB 19: NORMAL : PRINT "? ";: HTAB 19
  72. 154  GET A$: IF  VAL(A$) = 0  AND A$ < >"0"  AND A$ < >":"  AND A$ < >"-"  THEN 152
  73. 156 SP =  VAL(A$) +10 *(A$ = "0") +20 *(A$ = ":") +40 *(A$ = "-"): IF SP = 0  THEN SP = 10
  74. 158 ST = SP: GOTO 368
  75. 160  IF K = 160  THEN DR = DR * -1:SP = ST:XO = XN:YO = YN: HPLOT XN,YN: FOR K = 1 TO 4: FOR J = 1 TO 2:I =  PEEK(Q +48): NEXT : FOR J = 1 TO 30: NEXT : NEXT : GOTO 368
  76. 162  GOTO 164
  77. 164  IF K < >176  THEN 190
  78. 166  IF X2 = XN  OR Y2 = YN  THEN 288
  79. 168  IF MX  THEN J =  ABS(Y2 -YN): IF J - INT(J/2) *2 = 1  THEN Y2 = Y2 +(Y2 <YY)
  80. 170  POKE GT,0:CI = CI +1: IF CI >2  THEN CI = 1
  81. 172  XDRAW N4 AT XN,YN: XDRAW N4 AT X2,Y2: XDRAW N4 AT XN,Y2: XDRAW N4 AT X2,YN
  82. 174 XC = (XN +X2)/2:YC = (YN +Y2)/2: HPLOT XC +( ABS(X2 -XN) -1)/2,YC
  83. 176  IF CI >1  THEN 182
  84. 178  FOR I = 1 TO 40:J = 6.28 *I/40:XO = XC +( ABS(X2 -XN) -1)/2 * COS(J):YO = YC +( ABS(Y2 -YN) -1)/2 * SIN(J): HPLOT  TO XO,YO: IF  PEEK(Q) = CM  THEN  POKE CL,0: GOTO 188
  85. 180  IF  PEEK(Q) < >176  THEN  NEXT : GOTO 188
  86. 182 D =  ABS(Y2 -YN): FOR J = 1 TO  INT(D/2):H = (D/2) -J:I = .5 + ABS(X2 -XN) * SQR(.25 -(H *H)/(D *D)): HCOLOR= C -5 *(C = 8): IF J - INT(J/2) *2 = 0  AND MX  THEN  HCOLOR= C2
  87. 184  HPLOT  ABS(XC -I),YC +H TO XC +I,YC +H: HPLOT  ABS(XC -I),YC -H TO XC +I,YC -H: IF  PEEK(Q) = CM  THEN  POKE CL,0:CI = 0: GOTO 188
  88. 186  NEXT 
  89. 188  XDRAW 4 AT XN,YN: XDRAW 4 AT X2,Y2: XDRAW 4 AT XN,Y2: XDRAW 4 AT X2,YN: POKE CL,0: POKE GT,0:KE =  -1: GOTO 288
  90. 190  IF K = CM  THEN A$ = "Z": GOTO 198
  91. 192  IF K = 210  THEN 208
  92. 194  IF K < >184  THEN 214
  93. 196  GOSUB 18: VTAB 22: PRINT "---------------      X = XO CURSOR": PRINT "R = ROTATE LEFT      B = RUBBER BAND    Z = ZERO OFFSET      N = NO CURSOR";: VTAB 21: HTAB 1: PRINT "MODIFY CURSOR:";: GET A$
  94. 198  IF A$ = "Z"  THEN X2 = XN:Y2 = YN: FOR I = 1 TO 20: XDRAW N2 AT XN,YN: XDRAW N3 AT XN,YN: NEXT 
  95. 200  IF A$ = "X"  THEN CU = 1
  96. 202  IF A$ = "N"  THEN CU = 0
  97. 204  IF A$ = "B"  THEN CU = 2
  98. 206  IF A$ < >"R"  THEN 368
  99. 208 J = (XN >X2) +(YN >Y2): IF J = 0  OR J = 2  THEN I = YN:YN = Y2:Y2 = I
  100. 210  IF J = 1  THEN I = XN:XN = X2:X2 = I
  101. 212  GOTO 368
  102. 214  IF K = 178  THEN  GOSUB 300: GOTO 288
  103. 216  IF K < >179  THEN 222
  104. 218  GOSUB 18: VTAB 22: HTAB 9: PRINT "XDRAW GRID NOW? (Y/N):";: GET A$: IF A$ < >"Y"  THEN 282
  105. 219  POKE GF,0: SCALE= 191: ROT= 16: FOR I = 0 TO 200  STEP 100: XDRAW N4 AT I,0: NEXT : SCALE= 255: ROT= 0: XDRAW 4 AT 255,0: XDRAW 4 AT 255,100: SCALE= 24: XDRAW 4 AT 279,0: XDRAW 4 AT 279,100: SCALE= 1: FOR J = 0 TO 191  STEP 10: FOR I = 0 TO 279  STEP 10: XDRAW 4 AT I,J: NEXT : NEXT : SCALE= 5
  106. 220  FOR I = 50 TO 279  STEP 100: FOR J = 50 TO 191  STEP 100: ROT= 0: XDRAW N4 AT I +2,J: ROT= 16: XDRAW N4 AT I,J +2: NEXT : NEXT : ROT= 0: SCALE= 1: FOR I = 3 TO 279  STEP 3: XDRAW N4 AT I,191: NEXT : FOR I = 189 TO 3  STEP  -3: XDRAW N4 AT 279,I: NEXT : XDRAW N4 AT 50,50: XDRAW N4 AT 50,50: POKE GT,0: GOTO 288
  107. 222  IF K < >182  THEN 250
  108. 224  POKE P1,0
  109. 226  GOSUB 18: PRINT "P = SEE PAGE 2 (THIS ^ IS PAGE 1.)": PRINT "S = SWITCH PAGE 1 & PAGE 2 IMAGES": PRINT "R = RELOCATE SECTION OF PAGE 1": PRINT "M = MERGE PAGE 1 ONTO PAGE 2   SELECT:";: GET A$: IF A$ = "6"  THEN 226
  110. 228  IF A$ = "S"  THEN  GOSUB 474: GOTO 226
  111. 230  IF A$ < >"P"  THEN 238
  112. 232  POKE P2,0: POKE GT,0: FOR I = 1 TO 999: NEXT : POKE GF,0: GET A$
  113. 234  POKE P2,0: FOR J = 1 TO 1: NEXT : POKE P1,0: IF  PEEK(Q) <CC  THEN 234
  114. 236  POKE CL,0: POKE GT,0: GOTO 226
  115. 238  IF A$ = "R"  THEN 412
  116. 240  IF A$ < >"M"  THEN 282
  117. 242  GOSUB 18: INVERSE : PRINT " MERGE PAGE 1 ONTO 2:";: NORMAL : PRINT "    <RETURN>=CANCEL": PRINT "1=OPAQUE NON-BLACK    2=XDRAW": PRINT "3=OPAQUE BLACK        4=COMPARE/COMBINE";: VTAB 21: HTAB 23: GET A$: IF A$ =  CHR$(13)  THEN 226
  118. 244  GOSUB 18: PRINT "1=OPAQUE NON-BLACK PAGE 1 ONTO PAGE 2   2=XDRAW PAGE 1 ONTO PAGE 2": PRINT "3=OPAQUE BLACK PAGE 1 ONTO PAGE 2": PRINT "4=COMPARE/COMBINE              SELECT:";
  119. 246 I =  VAL(A$) +5: IF I <6  OR I >9  THEN 226
  120. 248  POKE P2,0: GOSUB 296: POKE GF,0: POKE OB +3,1: POKE OB +4,I: CALL OB: POKE GT,0: GOSUB 298: POKE P1,0: GOTO 226
  121. 250  IF K < >183  THEN 260
  122. 252  IF PD = 0  THEN  GOSUB 18: INVERSE : VTAB 22: HTAB 8: PRINT "  PADDLES NOT CONNECTED  ": GOSUB 296: GOTO 282
  123. 254  GOSUB 18: VTAB 22: PRINT "  CHANGE TO PADDLE CONTROL?   (Y/N):";: IF PD >0  THEN  HTAB 13: PRINT "KEYBOARD CONTROL?";
  124. 256  HTAB 37: GET A$: IF A$ < >"Y"  THEN 282
  125. 258  IF K = 183  THEN PD = PD * -1:XO = XN:YO = YN:DR =  -1: GOTO 368
  126. 260  IF K < >CC  THEN 270
  127. 262  POKE 1010,102: POKE 1011,213: POKE 1012,112: POKE  -16297,0: POKE  -16304,0:GT =  -16301:GF = GT -1:P2 =  -16299:P1 = P2 -1: POKE P1,0: POKE GT,0:OB = 4131
  128. 264  HOME : NORMAL : VTAB 21: HTAB 14: PRINT "A = ALPHA PLOT": HTAB 14: PRINT "Q = QUIT": PRINT : HTAB 14: PRINT "    SELECT:";: GET A$: IF A$ < >"Q"  AND A$ < >"A"  THEN 264
  129. 265  IF A$ = "A"  THEN  HOME : GOTO 352
  130. 266  GOSUB 18: PRINT "] RUN ALPHA PLOT TO CONTINUE": PRINT : PRINT "] POKE 49237,0 TO SEE PAGE 2": PRINT "] POKE 49234,0 TO ERASE NOTES";: VTAB 20: POKE 1010,191: POKE 1011,157: POKE 1012,56: POKE 24577,0: POKE 24578,0: CALL 40383
  131. 270  IF K < >181  THEN 284
  132. 272  GOSUB 408
  133. 274  POKE GT,0:KE =  -1: POKE 33,22: HOME : POKE 33,40: VTAB 21: HTAB 1: PRINT "TO ";: FLASH : PRINT "ERASE";: NORMAL : PRINT " SCREEN,": PRINT "   SELECT COLOR->": PRINT "-------------------": PRINT "<RETURN> TO CANCEL.";: HTAB 32: CALL  -868
  134. 276 K =  PEEK(Q): IF K <CC  THEN 276
  135. 278  POKE CL,0:J = K -176: IF J > = 0  AND J <9  THEN K = 197: POKE 33,20: HOME : POKE 33,40: VTAB 21: HTAB 1: PRINT "   ERASE SCREEN<CTRL-M>   IN COLOR #";J;"?<CTRL-M>   (Y/N):";: HTAB 10: GET A$: PRINT A$: IF A$ = "Y"  AND J <8  THEN  HCOLOR= J: HPLOT 0,0 TO  PEEK(224) + PEEK(225) *TF, PEEK(226): CALL 62454
  136. 280  IF J = 8  AND A$ = "Y"  THEN  POKE OB +3,1: POKE OB +4,2: POKE OB +10,32: CALL OB: POKE OB +10,64
  137. 282  GOTO 288
  138. 284  IF K = 180  THEN 302
  139. 286  IF PD <0  THEN  VTAB 21: HTAB 1: CALL  -958: INVERSE : VTAB 22: HTAB 11: PRINT G$;" UNPROGRAMMED KEY ";G$;: FOR I = 1 TO 666: NEXT : NORMAL 
  140. 288  NORMAL : ROT= 0: SCALE= 1: POKE CL,0: POKE  -16304,0:DR =  -1: IF M$ = "D"  THEN 368
  141. 290  IF M$ = "M"  THEN 302
  142. 292  IF M$ = "T"  THEN 476
  143. 294  POKE GT,0:KE =  -1: FOR I = 21 TO 24: VTAB I: HTAB 1: PRINT  SPC( 22): NEXT : HTAB 1: RETURN 
  144. 296  FOR K = 1 TO 999: NEXT : RETURN 
  145. 298  FOR K = 1 TO 1999: NEXT : RETURN 
  146. 300 KE = KE * -1: POKE  -16301 -(KE >0),0: RETURN 
  147. 302  NORMAL :M$ = "M":TX = 0: GOSUB 18: PRINT "ALPHA PLOT    : D = DRAWING MODE": PRINT "----------    : T = TYPING MODE": PRINT "COPYRIGHT     : L = LOAD IMAGE FROM DISKBEAGLE BROS   : S = SAVE IMAGE TO DISK";:I = 20
  148. 304 I = I +1 -4 *(I = 24): VTAB 24: HTAB 14: PRINT " :";: VTAB I -1: HTAB 14: PRINT " :";: VTAB I: HTAB 14: PRINT "->";: FOR J = 1 TO 99 +99 *(I = 24): NEXT :K =  PEEK(Q): IF K <128  THEN 304
  149. 306  POKE CL,0: IF K >176  AND K <183  THEN  ON K -176 GOTO 134,308,218,302,272,224
  150. 308  IF K = 178  THEN  GOSUB 300: GOTO 304
  151. 310 A$ =  CHR$(K -CC)
  152. 312  IF A$ =  CHR$(0)  THEN 264
  153. 314  IF A$ = "T"  OR A$ = "D"  THEN M$ = A$: GOTO 288
  154. 316  IF A$ =  CHR$(4)  OR A$ =  CHR$(20)  THEN M$ =  CHR$( ASC(A$) +64): GOTO 288
  155. 318  IF A$ = "L"  THEN 342
  156. 320  IF A$ = "S"  THEN 332
  157. 322 KE =  -1: POKE 49235,0: GOTO 304
  158. 324  VTAB 23: PRINT "TYPE "QT$"CAT"QT$" TO SEE CATALOG,": PRINT "OR <RETURN> TO CANCEL.";: VTAB 21: HTAB 22: INPUT ":";Q$: IF  LEN(Q$) = 0  THEN 302
  159. 326  IF Q$ = "CAT"  OR Q$ = "CATALOG"  THEN  TEXT : PRINT D$"CATALOG": FOR I = 1 TO 40: PRINT "-";: NEXT : PRINT "ANY KEY:";: CALL  -756: POKE  -16304,0: GOTO 318
  160. 328  IF A$ = "L"  THEN 344
  161. 330  IF A$ = "S"  THEN 334
  162. 332  GOSUB 18: PRINT "NAME OF IMAGE TO SAVE: ": GOTO 324
  163. 334  GOSUB 18: VTAB 22: PRINT "SAVE ";Q$: PRINT "FROM PAGE 1 OR 2?";: GET A$: IF A$ < > CHR$(13)  AND A$ < >"1"  AND A$ < >"2"  THEN 334
  164. 336  IF A$ =  CHR$(13)  THEN 288
  165. 338 J =  VAL(A$) *8192: POKE  -16300 +(J = 16384),0: GOSUB 296
  166. 340  HOME : POKE GF,0: PRINT D$"BSAVE"Q$",A"J",L8191": POKE GT,0: POKE P1,0: GOTO 302
  167. 342  GOSUB 18: PRINT "NAME OF IMAGE TO LOAD: ": GOTO 324
  168. 344  GOSUB 18: VTAB 22: PRINT "LOAD ";Q$: PRINT "ONTO PAGE 1 OR PAGE 2?";: GET A$: IF A$ < > CHR$(13)  AND A$ < >"1"  AND A$ < >"2"  THEN 344
  169. 346  IF A$ =  CHR$(13)  THEN 288
  170. 348 J =  VAL(A$) *8192: POKE  -16300 +(J = 16384),0: GOSUB 296
  171. 350  HOME : POKE GF,0: POKE  -16301 + VAL(A$),0: PRINT D$"BLOAD"Q$",A"J: POKE GT,0: GOSUB 298: POKE P1,0: GOTO 302
  172. 352 OC = 5825:O2 = OC +12:O3 = O2 +1:CB = 130:CD = 132:CM = 141:CN = 14:BS = 136:CS = 32:CO = 143:SC = 155:CC = 128:A = 191
  173. 354  HCOLOR= 3: SCALE= 1: ROT= 0:N1 = 1:N2 = 2:N3 = 3:N4 = 4:N5 = 5:N6 = 6:N7 = 7:N8 = 8:N9 = 9:XX = 279:YY = 191:TF = 256:D$ =  CHR$(13) + CHR$(4):G$ =  CHR$(7):QT$ =  CHR$(34):XO = 140:YO = 80:X2 = XO:Y2 = YO:XN = XO:YN = YO:CY = 35:CX = 0
  174. 356 Q =  -16384:CU = 1:CL =  -16368:DR =  -1:SP = 10:ST = SP:KE =  -1:C = 8:XP = 1.098:YP = .752:ES = 1:PG =  -1:PD =  -1: IF  PEEK( -16287) >127  AND  PEEK( -16286) >127  THEN PD = 0
  175. 358 OL = 5329:OM = 4586:OB = 4131
  176. 360  POKE OB +3,1: POKE OB +4,1: POKE OB +5,0: POKE OB +6,4: POKE OB +7,255: POKE OB +8,7: POKE OB +9,0: POKE OB +10,8: CALL OB:A$ = "  PAGE TWO  ": FOR I = 2910 TO 2921:Q$ =  MID$ (A$,I -2909,1): POKE I, ASC(Q$) -64 +64 *(Q$ = " "): NEXT 
  177. 362  FOR I = 3038 TO 3049: POKE I,32: NEXT : FOR I = 2782 TO 2793: POKE I,32: NEXT : POKE OB +5,0: POKE OB +6,32: POKE OB +7,255: POKE OB +8,63: POKE OB +9,0: POKE OB +10,64
  178. 364 R = 0:IV = 0:TA = 1:ES = 2:LD = 2:KN = 2: POKE OC +15,TA: POKE OC +13,IV: POKE OC +16,7 +LD: POKE OC +19,KN: POKE OC +14,R
  179. 366  GOTO 302
  180. 368  VTAB 21: HTAB 1: IF DR >0  THEN  FLASH : PRINT "DRAW";
  181. 370  NORMAL : IF DR <0  THEN  PRINT "MOVE";
  182. 372  PRINT " ";: IF CU = 1  THEN  PRINT "XO";
  183. 374  IF CU = 2  THEN  PRINT "RB";
  184. 376  IF CU = 0  THEN  PRINT "--";
  185. 378  PRINT " ";: IF PD = 1  THEN  PRINT "PDL";
  186. 380  IF PD <1  THEN  PRINT "KEY";
  187. 382  PRINT " SPEED=";SP; SPC( 2 +(SP <10)): PRINT : PRINT "---- -- --- ";: FOR I = 1 TO 7 +(SP >9): PRINT "-";: NEXT : PRINT  SPC( 2 +(SP <10)): PRINT : PRINT "CURSOR: H=  ,V=       <CTRL-M>OFFSET: H=  ,V=       ";: GOSUB 408
  188. 384  INVERSE : VTAB 21: IF MX  THEN 406
  189. 386 I = C +1: ON I GOTO 388,392,394,396,388,400,402,396,404,406,1670
  190. 388  NORMAL : IF C = 4  THEN  HTAB 32: PRINT "0,";: INVERSE : PRINT 4;
  191. 390  HTAB 36: INVERSE : PRINT "BLACK": GOTO 20
  192. 392  HTAB 25: PRINT "GREEN": GOTO 20
  193. 394  VTAB 22: HTAB 25: PRINT "VIOLET": GOTO 20
  194. 396  VTAB 22: NORMAL : IF C = 7  THEN  HTAB 32: PRINT "3,";: INVERSE : PRINT 7;
  195. 398  INVERSE : HTAB 36: PRINT "WHITE": GOTO 20
  196. 400  VTAB 23: HTAB 25: PRINT "ORANGE": GOTO 20
  197. 402  VTAB 24: HTAB 25: PRINT "BLUE";: GOTO 20
  198. 404  VTAB 23: HTAB 34: PRINT "REVERSE";: GOTO 20
  199. 406  VTAB 24: HTAB 34: PRINT "MIX";: NORMAL : PRINT ":";C1;"+";: POKE 2039,176 +C2: GOTO 20
  200. 408  VTAB 21: HTAB 24: PRINT "=GREEN  ";: HTAB 33: PRINT ",4=BLACK";: HTAB 24: PRINT "=VIOLET ";: HTAB 33: PRINT ",7=WHITE";: HTAB 24: PRINT "=ORANGE ";: HTAB 33: PRINT "=REVERSE";: HTAB 24: PRINT "=BLUE   ";: HTAB 33: PRINT "=MIX";: CALL  -868
  201. 410  INVERSE : VTAB 21: HTAB 23: PRINT 1;: HTAB 32: PRINT 0: HTAB 23: PRINT 2;: HTAB 32: PRINT 3: HTAB 23: PRINT 5;: HTAB 32: PRINT 8: HTAB 23: PRINT 6;: HTAB 32: PRINT 9;: NORMAL : RETURN 
  202. 412  IF XN = X2  OR YN = Y2  THEN PM =  -35: GOTO 422
  203. 414  GOSUB 18: VTAB 21: PRINT "RELOCATE THIS SECTION ONTO PAGE 1 OR 2?";: FLASH : PRINT " ";: NORMAL : PRINT "(THIS IS PAGE 1.)": PRINT : PRINT "N = REMOVE NOTES      <RETURN> = CANCEL";
  204. 416 MF = 1: GOSUB 90: GOSUB 90:PM =  PEEK(Q) -176: IF PM < >1  AND PM < >30  AND PM < >2  AND PM < > -35  THEN 416
  205. 418  POKE CL,0: IF PM = 30  THEN  GOSUB 300: GOTO 416
  206. 420  IF PM =  -35  THEN 282
  207. 422  IF PM =  -35  THEN  GOSUB 18: PRINT "DEFINE RECTANGULAR AREA TO BE MOVED     WITH XO CURSOR, AND SELECT 6-R AGAIN.": PRINT : PRINT "<RETURN>:";: GET A$:CU = 1:MF = 0: GOTO 282
  208. 424  GOSUB 90: IF PM = 2  THEN  GOSUB 474
  209. 426  GOSUB 18: PRINT "USE KEYS TO MOVE TO NEW PAGE ";PM;" LOCATION.": PRINT "M = PERMANENT IMAGE MOVE.": PRINT "<RETURN> = CANCEL";
  210. 428 XL = XN:XH = X2: IF X2 <XN  THEN XL = X2:XH = XN
  211. 430 YL = YN:YH = Y2: IF Y2 <YN  THEN YL = Y2:YH = YN
  212. 432  GOSUB 90: GOSUB 90:K =  PEEK(Q): IF K <CC  THEN 432
  213. 434  POKE CL,0: IF K = 205  THEN 460
  214. 436  IF K = 206  OR K = 178  THEN  GOSUB 300: GOTO 432
  215. 438  IF K = CM  THEN XN = XL:X2 = XH:YN = YL:Y2 = YH: GOTO 460
  216. 440 J =  -14 *(K = BS) -(K = 203) +14 *(K = 149) +(K = 204):XN = XN +J:X2 = X2 +J:J = 9 *(K = 218) +(K = 216) -9 *(K = 193) -(K = 211):YN = YN +J:Y2 = Y2 +J
  217. 442  IF YN <0  THEN Y2 = Y2 -YN:YN = 0
  218. 444  IF Y2 <0  THEN YN = YN -Y2:Y2 = 0
  219. 446  IF XN <0  THEN X2 = X2 -XN:XN = 0
  220. 448  IF XN >XX  THEN X2 = X2 +(XX -XN):XN = XX
  221. 450  IF X2 <0  THEN XN = XN -X2:X2 = 0
  222. 452  IF X2 >XX  THEN XN = XN +(XX -X2):X2 = XX
  223. 454  IF YN >YY  THEN Y2 = Y2 +(YY -YN):YN = YY
  224. 456  IF Y2 >YY  THEN YN = YN +(YY -Y2):Y2 = YY
  225. 458  GOTO 432
  226. 460  POKE OM +13,PM -(K = CM  AND PM = 2): IF PM = 2  THEN  HOME : TEXT : GOSUB 474: POKE  -16304,0: IF K < >CM  THEN  POKE P2,0
  227. 462  POKE OM +4,XL - INT(XL/TF) *TF: POKE OM +5, INT(XL/TF): POKE OM +6,YL: POKE OM +7,XH - INT(XH/TF) *TF: POKE OM +8, INT(XH/TF): POKE OM +9,YH:XL = XN:XH = X2: IF X2 <XN  THEN XL = X2:XH = XN
  228. 464 YL = YN:YH = Y2: IF Y2 <YN  THEN YL = Y2:YH = YN
  229. 466  POKE OM +10,XL - INT(XL/TF) *TF: POKE OM +11, INT(XL/TF): POKE OM +12,YL:X2 =  PEEK(OM +4) +TF * PEEK(OM +5):XN =  PEEK(OM +7) +TF * PEEK(OM +8):YN =  PEEK(OM +9):Y2 =  PEEK(OM +6)
  230. 468  POKE OM +3,2: GOSUB 90: IF K < >CM  AND PM = 2  THEN  POKE P2,0
  231. 470  IF K < >CM  THEN  CALL OM
  232. 472 MF = 0: GOSUB 298: POKE P1,0: GOTO 224
  233. 474  GOSUB 18: HTAB 15: PRINT "(SWITCHING)": POKE OB +3,3: POKE OB +4,1: CALL OB: POKE P1,0: RETURN 
  234. 476  VTAB 21: HTAB 1: NORMAL : FOR I = 1 TO 40: PRINT "-";: NEXT : PRINT "BIG COLOR:";: IF C >7  THEN C = 3
  235. 478  POKE 224,CX - INT(CX/TF) *TF: POKE 225, INT(CX/TF): POKE 226,CY: CALL OC +9
  236. 480  IF C = 0  OR C = 4  THEN C = 3
  237. 482  PRINT C;: NORMAL : PRINT "   SIZE:1     <-SELECT BMRSLKMODE:NORMAL   LEAD:2       OR 1-6:      ROTATION:>    KERN:2       THEN <RETURN";: POKE 2039,190
  238. 484  INVERSE : VTAB 22: HTAB 1: PRINT "B";: HTAB 15: PRINT "S": PRINT "M";: HTAB 15: PRINT "L": PRINT "R";: HTAB 15: PRINT "K";
  239. 486  NORMAL : VTAB 22: HTAB 20: PRINT TA: HTAB 20: PRINT LD: HTAB 10: PRINT  CHR$(62 *(R = 0) +94 *(R = 1) +60 *(R = 2) +86 *(R = 3));: HTAB 20: PRINT KN;: VTAB 23: HTAB 6: IF IV = 0  THEN  PRINT "NORMAL ";
  240. 488  IF IV = 1  THEN  PRINT "WHITE  ";
  241. 490  IF IV = 2  THEN  INVERSE : PRINT "INVERSE";: NORMAL 
  242. 492  IF IV = 3  THEN  FLASH : PRINT "XTYPE";: NORMAL : PRINT "  ";
  243. 494  IF   NOT TX  THEN TX = 1: GOTO 512
  244. 496  VTAB 23: HTAB 35: GET A$: IF A$ =  CHR$(15)  THEN 496
  245. 498  IF A$ = "S"  THEN TA = TA +1 -4 *(TA = 4): POKE OC +15,TA: GOTO 486
  246. 500  IF A$ = "M"  THEN IV = IV +1 +(IV = 0) -4 *(IV = 3): POKE OC +13,IV: GOTO 486
  247. 502  IF A$ = "L"  THEN LD = LD +1 -4 *(LD = 4): POKE OC +16,7 +LD: GOTO 486
  248. 504  IF A$ = "K"  THEN KN = KN +1 -4 *(KN = 4): POKE OC +19,KN: GOTO 486
  249. 506  IF A$ = "R"  THEN R = R +1 -4 *(R = 3): POKE OC +14,R: GOTO 486
  250. 508  IF A$ = "B"  THEN A$ = "1"
  251. 510  IF A$ >"0"  AND A$ <"7"  THEN K =  ASC(A$) +CC: ON K -176 GOTO 134,214,218,302,272,224
  252. 512  FOR I = 22 TO 24: VTAB I: HTAB 21: CALL  -868: NEXT : VTAB 22: HTAB 15: PRINT "S": PRINT "M";: HTAB 15: PRINT "L": PRINT "R";: HTAB 15: PRINT "K";: HCOLOR= C
  253. 514  VTAB 22: HTAB 1: NORMAL : IF ES = 0  THEN  PRINT "LOWER CASE ";
  254. 516  INVERSE : IF ES = 1  THEN  PRINT "U";: NORMAL : PRINT "PPER CASE ";
  255. 518  IF ES = 2  THEN  PRINT "UPPER";: NORMAL : PRINT " CASE ";
  256. 520  GOTO 524
  257. 522  IF ES = 1  THEN ES = 0: GOTO 514
  258. 524 TM =  PEEK(O3):I = CB +CN *(ES = 0)
  259. 526  POKE O3,N3: POKE O2,I: CALL OC: POKE O2,BS: CALL OC: POKE O2,I: CALL OC: POKE O2,BS: CALL OC:K =  PEEK(Q): IF K <CC  THEN 526
  260. 528  POKE CL,0: POKE O3,TM:I = (K = 133  OR K = 134  OR K = 137): POKE O2,K +86 *(I >0) +((K >A  OR I)  AND   NOT ES) *CS: CALL OC: IF K < >CD  AND K < >SC  AND K < >CC  AND K < >CO  THEN 522
  261. 530  CALL 62923:CX =  PEEK(224) + PEEK(225) *TF:CY =  PEEK(226)
  262. 532  IF K = CO  THEN  POKE GT,0:KE =  -1: GOTO 476
  263. 534  IF K = CC  THEN 264
  264. 536  IF K = CD  THEN M$ = "D": GOTO 282
  265. 538  IF K = SC  THEN ES = ES +1 -3 *(ES = 2)
  266. 540  GOTO 514
  267. 542 A$ = "": ROT= 0: SCALE= 1: POKE  -16304,0: POKE  -16297,0: POKE P1,0: POKE GT,0: GOSUB 18: VTAB 22:I =  PEEK(222): IF I <14  THEN  RESTORE : FOR J = 1 TO I +1: READ A$: NEXT 
  268. 544 IV = 0: POKE O3,0: IF I = 255  THEN  RUN 
  269. 546  INVERSE : PRINT G$" ERROR "I": "A$G$" ": GOSUB 298: RUN 
  270. 548  DATA ,,,,WRITE PROTECTED,,FILE NOT FOUND,,I/O ERROR,DISK FULL,FILE LOCKED,,,WRONG FILE TYPE